package middleware

import (
	"app/internal/pkg/config"

	"github.com/gin-gonic/gin"
)

// 限制请求速率中间件，支持内存和redis两种方式
func Limit() gin.HandlerFunc {
	switch config.CacheDriver {
	case "memory":
		return MemoryLimit()
	case "redis":
		return RedisLimit()
	default:
		return MemoryLimit()
	}
}

// MemoryLimit 内存限制
func MemoryLimit() gin.HandlerFunc {
	return func(c *gin.Context) {
		// TODO: 内存限制，使用令牌桶算法
	}
}

// RedisLimit redis限制
func RedisLimit() gin.HandlerFunc {
	return func(c *gin.Context) {
		// TODO: redis限制
	}
}
